home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / hamgeo_c < prev    next >
Internet Message Format  |  1995-03-31  |  19KB

  1. From: Charles Patton <charliep@hpcvrs.cv.hp.com>
  2. Subject:  v03i045:  hamgeo_cp - Hamilton Geodesy v1.0, Part01/01
  3. Newsgroups: comp.sources.hp48
  4. Followup-To: comp.sys.hp48
  5. Approved: spell@seq.uncwil.edu
  6.  
  7. Checksum:  566192616 (verify with brik -cv)
  8. Submitted-by: Charles Patton <charliep@hpcvrs.cv.hp.com>
  9. Posting-number: Volume 3, Issue 45
  10. Archive-name: hamgeo_cp/part01
  11.  
  12. BEGIN_DOC HamiltonGeodesy.doc
  13. @ Version 1.0 @
  14.  
  15. _Introduction_
  16.  
  17.      The programs contained in this document comprise a collection
  18. of simple-minded utilities for use in computing approximate orbits
  19. of Hamiltonian dynamical systems in three space variables.
  20.  
  21.      These utilites are the outcome of messing around with ways of
  22. computing geodesics on implicitly-defined surfaces embedded in Euclidean
  23. space. There is nothing new about the method involved, rather, the nicest
  24. thing is how easy it is to "follow your nose" when working in an
  25. environment like that of the '48.
  26.  
  27.      All suggestions, additions, corrections, insights, commentary,
  28. and criticisms are welcome.
  29.  
  30. _NO WARRANTY_
  31.     This work is provided on an "as is" basis. Hewlett-Packard Co.
  32. provides no warranty whatsoever, either express or implied regarding
  33. the work, including warranties with respect to its merchantability or
  34. fitness for any purpose whatsoever.
  35.  
  36. _Copyright_
  37.    Copyright (C), 1991, Hewlett-Packard Co. Permission to copy all or
  38. part of this work is granted provided that the copies are not made or
  39. distributed for resale (excepting nominal copying fees) and the
  40.  _NO WARRANTY_ and this copyright notice are included verbatim. Other
  41. permissions can be arranged by contacting the author.
  42.  
  43. _Correspondence_
  44.  
  45.    Correspondence on HamiltonGeodesy should be sent to Charles Patton
  46. at one of the following addresses:
  47.  
  48. snail-mail:
  49.           M.S. 5U-L9
  50.           Hewlett-Packard Co.
  51.           1000 N.E. Circle Blvd.
  52.           Corvallis, OR 97330
  53.  
  54. e-mail:
  55.           charliep@cv.hp.com    (for Internet hosts)
  56.           hplabs!hpcvrs!charliep (for UUCP hosts)
  57.  
  58. _Overview_
  59.  
  60.      Recall that the Hamilton-Jacobi formulation of classical mechanics
  61. starts with the energy function ("Hamiltonian") as a function of position
  62. and momentum of the system in question: q,p --> H(q,p). The Hamilton
  63. equations then say that the time derivative of the position is the
  64. derivative of H with respect to momentum, and the time derivative of
  65. the momentum is the negative of the derivative of H with respect to
  66. the position: q'=dH/dp ; p'=-dH/dq. The orbits of the Hamiltonian are
  67. the integral curves of this system of differential equations, that is,
  68. curves q(t),p(t) which satisfy dq/dt=dH/dp and dp/dt=-dH/dq.
  69.  
  70.     Perhaps the simplest way to formulate the problem of finding
  71. geodesics on a Riemannian space is as a Hamiltonian system. In this case,
  72. the Hamiltonian is just the function which assigns to a position and
  73. momentum half the squared length (according to the local metric) of the
  74. momentum:
  75.  
  76. H(q,p)=0.5 Sum g  (q) p  p
  77.             i,j ij     i  j
  78.  
  79. where g(q) is the metric at q. In this case, the projection onto
  80. position space of the orbits of the Hamiltonian are the geodesics.
  81.  
  82.     If we are trying to find geodesics on a surface emdedded in
  83. Euclidean space, we could find local coordinates for the surface,
  84. compute the metric in local coordinates, and then use the above
  85. formulation to find geodesics in terms of these local coordinates.
  86. This is almost always difficult to do.
  87.  
  88.     We will take a different approach here, the key difference being
  89. that we are assuming that the surface is given to us as the zero-set
  90. of a function F: q --> F(q) defined on the Euclidean space. We can use
  91. F to define a potential function on the Euclidean space with a minimum
  92. along the desired surface and use the Euclidean metric together to define
  93. the Hamiltonian:
  94.  
  95.     2    2          2
  96. H(q,p)=k F(q) +0.5 ||p||
  97.  
  98. for some "large" constant, k.
  99.  
  100.     If we start with any initial q,p with F(q)=0 and p "tangent" to
  101. the the surface, the projection onto position space of the resulting
  102. orbit will approximate a geodesic on the desired surface. You can
  103. think of this as describing a particle attached to the surface by a
  104. sliding, frictionless spring. If the spring is very stiff, the
  105. particle will follow the path of a geodesic when it is given a shove
  106. along the surface. If the spring is not so stiff, the particle will
  107. combine near-geodesic motion with oscillations normal to the surface.
  108.  
  109. _Organization and Descriptions of the Programs_
  110.  
  111.     The utilities are arranged in a directory with the two top-level
  112. programs first, and the supporting utilities and variables afterwords.
  113. The space coordinates are represented by the variables, 'x' 'y' and 'z'
  114. (note the lower case.) The corresponding momentum coordinates are 'px'
  115. 'py' and 'pz'.
  116.  
  117. SetUpHamiltonian:
  118.     Given the function kF, on the stack, as an expression in the space
  119. variables, 'x' 'y' and 'z', this program creates the Hamiltonian
  120. described above and stores it in the variable 'H' for future
  121. reference. It then computes the components, 'xdot'...'pzdot',
  122. corresponding to the Hamiltonian equations. It then calls on the
  123. utility Lie4thOrder to compute a (formal) fourth order polynomial
  124. approximation to the solution of the system of Hamilton equations,
  125. storing the formulae for the increments as '<delta>x'...'<delta>pz'.
  126. This takes a loooong time so go out for a coffee break after firing it
  127. up.
  128.  
  129. After this finishes, you are ready to plot approximate geodesics on your
  130. surface.
  131.  
  132.     You can easily customize this program to set up for an arbitrary
  133. Hamiltonian in these variables by deleting the first line of the
  134. program listed, below, and storing your choice of Hamiltonian (as an
  135. expression in 'x'...'pz') in the variable 'H' before running
  136. SetUpHamiltonian.
  137.  
  138. N.B.>Insure that 'x' 'y' 'z' 'px' 'py' and 'pz' are formal (no variables
  139. N.B.>with those names along the current path.)
  140.  
  141. N.B.> Examine the MODES menu to be sure that the
  142. N.B.> the machine is in SYMBOLIC EVALUATION mode ( SYM button.)
  143.  
  144. RunHamiltonian:
  145.     This program takes initial values for x y z px py and pz on the
  146. stack and computes successive points (approximately) on the orbit of
  147. the Hamiltonian. It graphs these by lines connecting successive (x,z)
  148. pairs (i.e. projection of the orbit on the x-z plane) using the
  149. current PPAR values for the horizontal and vertical scaling of the
  150. screen. It requires that you have previously run SetUpHamiltonian in
  151. the current directory.
  152.  
  153.     As part of its initialization, it takes the current value of the
  154. stepsize (stored in the variable <delta>) and pre-computes the higher
  155. order stepsizes (<delta>^2/2, <delta>^3/6, and <delta>^4/24) storing
  156. these in <delta>2 <delta>3 and <delta>4. As explained below, the
  157. default value of <delta> is 0.1, but you can use any value you wish as
  158. long as you store it before running this program.
  159.  
  160.     You should exit this program by pressing the [ENTER] key. When
  161. this is done, the program will clean up and leave the last computed
  162. values of x...pz on the stack ready for continuation of the orbit, if
  163. desired.
  164.  
  165. HamiltonStep:
  166.     This simple utility takes the values off the stack, stores them
  167. in 'x'...'pz', computes the next step and returns the values to the
  168. stack.
  169.  
  170. Lie4thOrder:
  171.     This routine constitutes the heart of this collection of
  172. utilities.  The idea is that applying the Lie derivative operator
  173.  
  174.      d      d      d       d      d      d
  175. L:=x'-  + y'-  + z'-  + px'- + py'- + pz'-
  176.      dx     dy     dz     dpx    dpy    dpz
  177.  
  178. to any function, f, corresponds to taking the time derivative of f
  179. along the orbits of the Hamiltonian. Thus, the fourth-order Taylor
  180. series approximation to the time evolution of f is
  181.  
  182.     f+(Lf)t+(LLf)t^2/2+(LLLf)t^3/6+(LLLLf)t^4/24
  183.  
  184.     Using this on each of the coordinate functions, x...pz, thus gives
  185. an approximation to the orbits themselves. This program computes this
  186. approximation for each of the coordinate functions using <delta> as
  187. the time-step, t. This is equivalent (in the limit of small time-step)
  188. to the fourth-order Runge-Kutte method of approximating solutions to
  189. ordinary differential equations, but has the advantage of being much
  190. more comprehensible. It also allows you to compute the approximate
  191. time evolution of any smooth function, not just the coordinate
  192. functions, in exactly the same manner.
  193.  
  194.    The resulting approximation is subject to the same kinds of
  195. instabilities as the R-K method. In our case, this shows up when the
  196. approximation overshoots into a region where the added potential is
  197. steep. This causes the next step to overshoot even more in the other
  198. direction, quickly leading to huge values for the position and
  199. momentum coordinates. For this reason, you should leave <delta> at its
  200. default value, and if instabilites become apparent, choose a smaller
  201. value for the initial velocity. The point here being that while the
  202. space-projection of the orbits of the geodesic equation don't depend
  203. on the initial velocity, the orbits of our approximation do. They are
  204. only asymptotic to the geodesics in the limit of small initial
  205. velocity. Moreover, no choice of potential will fix that. You can
  206. think of it like a motorcycle driving in a groove. At low velocity, it
  207. will follow the groove nicely, but at high velocity, it will "bank"
  208. its turns on the wall of the groove, hence the possibility for
  209. overshoot becomes more serious.
  210.  
  211. LieDer:
  212.     This utility takes a function, given as an expression in x...pz,
  213. and computes its Lie derivative according to the current values of
  214. 'xdot'...'pzdot' which correspond to x'...pz'.
  215.  
  216. The Other Variables:
  217.     <delta>...<delta>4 and 'H' were explained previously. The others
  218. are placeholders for values computed during the operations of the
  219. main programs.
  220.  
  221. Using the Programs:
  222.     To download this to a '48, you can either type in the listings
  223. given below, making the translation from the backslash form of the
  224. characters to the corresponding '48 characters, or strip off
  225. everything prior to and including "BEGIN_RPL HamiltonGeodesy" below,
  226. and the final line "END_RPL" and then download the resulting file in
  227. ASCII mode to your '48. The result in either case will be a directory
  228. containing the programs and variables described above.
  229.  
  230. END_DOC
  231.  
  232. BEGIN_RPL HamiltonGeodesy.rpl
  233. %%HP: T(3)A(R)F(.);
  234. DIR
  235.   SetUpHamiltonian
  236.    \<< 2 ^ '0.5*(px^2+py^2+pz^2)' + 'H' STO
  237.        H 'x' \.d COLCT NEG 'pxdot' STO
  238.        H 'y' \.d COLCT NEG 'pydot' STO
  239.        H 'z' \.d COLCT NEG 'pzdot' STO
  240.        H 'px' \.d COLCT 'xdot' STO
  241.        H 'py' \.d COLCT 'ydot' STO
  242.        H 'pz' \.d COLCT 'zdot' STO
  243.        'x' Lie4thOrder '\Gdx' STO
  244.        'y' Lie4thOrder '\Gdy' STO
  245.        'z' Lie4thOrder '\Gdz' STO
  246.        'px' Lie4thOrder '\Gdpx' STO
  247.        'py' Lie4thOrder '\Gdpy' STO
  248.        'pz' Lie4thOrder '\Gdpz' STO
  249.    \>>
  250.   RunHamiltonian
  251.     \<< 6 PICK 5 PICK R\->C
  252.       \-> U
  253.       \<< \Gd \Gd * 2 / DUP '\Gd2' STO
  254.           \Gd * 3 / DUP '\Gd3' STO
  255.           \Gd * 4 / '\Gd4' STO
  256.           { # 0d # 0d } PVIEW
  257.         DO
  258.           HamiltonStep
  259.           6 PICK 5 PICK R\->C
  260.           DUP U LINE 'U' STO
  261.         UNTIL KEY
  262.         END DROP {x y z px py pz} PURGE
  263.       \>>
  264.     \>>
  265.   HamiltonStep
  266.     \<< 'pz' STO 'py' STO 'px' STO
  267.         'z' STO 'y' STO 'x' STO
  268.         \Gdx \->NUM x +
  269.         \Gdy \->NUM y +
  270.         \Gdz \->NUM z +
  271.         \Gdpx \->NUM px +
  272.         \Gdpy \->NUM py +
  273.         \Gdpz \->NUM pz +
  274.     \>>
  275.   Lie4thOrder
  276.     \<< LieDer COLCT DUP '\Gd' *
  277.         SWAP LieDer COLCT DUP '\Gd2' *
  278.         ROT SWAP + SWAP
  279.         LieDer COLCT DUP '\Gd3' * ROT SWAP
  280.         + SWAP LieDer COLCT '\Gd4' * +
  281.     \>>
  282.   LieDer
  283.     \<< \-> N
  284.       \<< N 'x' \.d xdot *
  285.           N 'y' \.d ydot * +
  286.           N 'z' \.d zdot * +
  287.           N 'px' \.d pxdot * +
  288.           N 'py' \.d pydot * +
  289.           N 'pz' \.d pzdot * +
  290.       \>>
  291.     \>>
  292.   H 'px^2+py^2+pz^2+(x^2+y^2-z)^2'
  293.   PPAR {(-6.5,-3.1) (6.5,3.2) X 0 (0,0) FUNCTION Y }
  294.   xdot 0
  295.   ydot 0
  296.   zdot 0
  297.   pxdot 0
  298.   pydot 0
  299.   pzdot 0
  300.   \Gdx 0
  301.   \Gdy 0
  302.   \Gdz 0
  303.   \Gdpx 0
  304.   \Gdpy 0
  305.   \Gdpz 0
  306.   \Gd .1
  307.   \Gd2 .005
  308.   \Gd3 1.66666666667E-4
  309.   \Gd4 4.16666666668E-6
  310. END
  311. END_RPL
  312.  
  313. BEGIN_ASC HamiltonGeodesy.asc
  314. %%HP: T(3)A(D)F(.);
  315. "69A20FF7E1A000000020294320339204998666666666140D1000202933203392
  316. 06997666666666610D100020292320339207990000000000050D100010291033
  317. 9209990000000000010B1000302907A730339200000000000000000F10003029
  318. 079730339200000000000000000F10003029078730339200000000000000000F
  319. 10002029A720339200000000000000000D100020299720339200000000000000
  320. 000D100020298720339200000000000000000D10005007A746F6475033920000
  321. 00000000000003200050079746F6475033920000000000000000032000500787
  322. 46F647503392000000000000000003200040A746F64740339200000000000000
  323. 00012000409746F6474033920000000000000000012000408746F64740339200
  324. 0000000000000001200040050514254047A20779200000000000000569000000
  325. 0000000139779200000000000000560000000000000023084E2010854B2A2779
  326. 2000000000000000000000000000000000166E184E201095B21301A000108410
  327. 8BA2084E20200787ED2A2D20B184E20200797ED2A2D20B176BA184E202007A7E
  328. D2A2D20B176BA184E201087ED2A2D20B184E201097ED2A2D20B176BA184E2010
  329. A790DA1ED2A2D20B176BA1B21301A00060C4965644562760D9D20E16321C432D
  330. 6E2010E4E1632D6E2010E44563284E20108797632E7FE184E20408746F647EED
  331. A1D6E2010E44563284E20109797632E7FE184E20409746F647EEDA176BA1D6E2
  332. 010E44563284E2010A797632E7FE184E2040A746F647EEDA176BA1D6E2010E44
  333. 563284E2020078797632E7FE184E2050078746F647EEDA176BA1D6E2010E4456
  334. 3284E2020079797632E7FE184E2050079746F647EEDA176BA1D6E2010E445632
  335. 84E202007A797632E7FE184E205007A746F647EEDA176BA1EF53293632B2130F
  336. 9100B0C49656434786F427465627B0D9D20E163284E2060C4965644562751A02
  337. 78BF14563284E20102997632EEDA1DBBF184E2060C4965644562751A0278BF14
  338. 563284E2020292397632EEDA1E0CF1DBBF176BA1DBBF184E2060C49656445627
  339. 51A0278BF14563284E2020293397632EEDA1E0CF1DBBF176BA1DBBF184E2060C
  340. 4965644562751A024563284E2020294397632EEDA176BA193632B213053100C0
  341. 8416D696C647F6E635475607C0D9D20E16324563284E202007A797632DCC0245
  342. 63284E2020079797632DCC024563284E2020078797632DCC024563284E2010A7
  343. 97632DCC024563284E20109797632DCC024563284E20108797632DCC0284E202
  344. 029874E5A184E20108776BA184E202029974E5A184E20109776BA184E202029A
  345. 74E5A184E2010A776BA184E20302907874E5A184E2020078776BA184E2030290
  346. 7974E5A184E2020079776BA184E20302907A74E5A184E202007A776BA193632B
  347. 213068100E02557E68416D696C647F6E69616E6E0D9D20E1632233A2A9CF1D13
  348. A2A9CF1E97C11C432D6E201055E163284E20102984E201029EEDA1ED2A250FA1
  349. 78BF14563284E2020292397632DCC0284E201029EEDA13F2A250FA178BF14563
  350. 284E2020293397632DCC0284E201029EEDA1803A250FA14563284E2020294397
  351. 632DCC0247A20E4A20510000000000000000000E4A2051000000000000000000
  352. 0B21300F2E13C03284E20C08416D696C647F6E635475607233A2A9CF1D13A2A9
  353. CF1E97C178BF1D6E201055893E145632D6E20105597632DCC02DE032378A19B6
  354. 328DBF147A2084E20108784E20109784E2010A784E2020078784E2020079784E
  355. 202007A7B2130EFE02EF53293632B2130812000135564755078416D696C647F6
  356. E69616E601D9D20E1632ED2A2D20B18BA2033920999000000000005084E20200
  357. 787ED2A2D20B184E20200797ED2A2D20B176BA184E202007A7ED2A2D20B176BA
  358. 1EEDA1B213076BA14563284E20108497632DCC0284E2010844563284E2010879
  359. 7632E7FE151A02599A14563284E2050078746F64797632DCC0284E2010844563
  360. 284E20109797632E7FE151A02599A14563284E2050079746F64797632DCC0284
  361. E2010844563284E2010A797632E7FE151A02599A14563284E205007A746F6479
  362. 7632DCC0284E2010844563284E2020078797632E7FE151A024563284E2040874
  363. 6F64797632DCC0284E2010844563284E2020079797632E7FE151A024563284E2
  364. 0409746F64797632DCC0284E2010844563284E202007A797632E7FE151A02456
  365. 3284E2040A746F64797632DCC024563284E2010879763284E20B0C4965643478
  366. 6F4274656274563284E2020298797632DCC024563284E2010979763284E20B0C
  367. 49656434786F4274656274563284E2020299797632DCC024563284E2010A7976
  368. 3284E20B0C49656434786F4274656274563284E202029A797632DCC024563284
  369. E202007879763284E20B0C49656434786F4274656274563284E2030290787976
  370. 32DCC024563284E202007979763284E20B0C49656434786F4274656274563284
  371. E203029079797632DCC024563284E202007A79763284E20B0C49656434786F42
  372. 74656274563284E20302907A797632DCC0293632B2130CE7E"
  373. END_ASC
  374.  
  375. BYTES: #E7ECh 1866
  376.  
  377. BEGIN_UU HamiltonGeodesy.uue
  378. begin 644 HamiltonGeodesy
  379. M2%!(4#0X+466*O!_'@H````"DC0",RE`F6AF9F9F0=`!``*2,P(S*6"99V9F;
  380. M9F86T`$``I(R`C,I<)D``````%#0`0`!D@$S*9"9```````0L`$``Y)P>@,SZ
  381. M*0``````````\`$``Y)P>0,S*0``````````\`$``Y)P>`,S*0``````````\
  382. M\`$``I)Z`C,I``````````#0`0`"DGD",RD``````````-`!``*2>`(S*0``9
  383. M````````T`$`!7!Z9&]T!3,I```````````P`@`%<'ED;W0%,RD`````````N
  384. M`#`"``5P>&1O=`4S*0``````````,`(`!'ID;W0$,RD``````````!`"``1YJ
  385. M9&]T!#,I```````````0`@`$>&1O=`0S*0``````````$`(`!%!005($="IPG
  386. MEP(```````!0E@```````!"3=RD`````````90`````````R@.0"`5BTHG*7R
  387. M`@````````````````````!AYH'D`@%9*S$0"@`!2`&X*H#D`@)P>-ZBT@(;`
  388. M2"X@`)?G+2HML'&V&D@N(`"GYRTJ+;!QMAI(+A"`YRTJ+;"!Y`(!>=ZBT@(;5
  389. M9ZN!Y`(!>@FMX2TJ+;!QMAHK,1`*``9,:65$97(&G2W@82/!--+F`@%.'C;2H
  390. MY@(!3E0V@N0"`7AY-N+W'D@N0(!']D;GWAIM+A#@1&4C2"X0D)=G(W[O@>0"[
  391. M!'ED;W3NK7&V&FTN$.!$92-(+A"@EV<C?N^!Y`($>F1O=.ZM<;8:;2X0X$1EF
  392. M(T@N(`"'EV<C?N^!Y`(%<'AD;W3NK7&V&FTN$.!$92-(+B``EY=G(W[O@>0"M
  393. M!7!Y9&]T[JUQMAIM+A#@1&4C2"X@`*>79R-^[X'D`@5P>F1O=.ZM<;8:_C62[
  394. M8R,K,?`9``M,:64T=&A/<F1E<@N=+>!A(T@N8,"45D94)E>A((?[064C2"X0-
  395. M()EG(^ZMT;L?2"Y@P)161E0F5Z$@A_M!92-(+B`@*9-G(^ZMX<`?O?MQMAJ]#
  396. M^X'D`@9,:65$97(5"G*X'U0V@N0"`I(S>3;BWAH._-&['V>KT;L?2"Y@P)16C
  397. M1E0F5Z$@5#:"Y`("DC1Y-N+>&F>KD6,C*S%0$P`,2&%M:6QT;VY3=&5P#)TM,
  398. MX&$C5#:"Y`("<'IY-M+,(%0V@N0"`G!Y>3;2S"!4-H+D`@)P>'DVTLP@5#:".
  399. MY`(!>GDVTLP@5#:"Y`(!>7DVTLP@5#:"Y`(!>'DVTLP@2"X@((E'7AI(+A"`J
  400. M=[8:2"X@()E'7AI(+A"0=[8:2"X@(*E'7AI(+A"@=[8:2"XP(`F'1UX:2"X@$
  401. M`(=WMAI(+C`@"9='7AI(+B``EW>V&D@N,"`)IT=>&D@N(`"G=[8:.3:R$@.&M
  402. M`>`@5>>&%-:6QD;WYI86YN;0V0(>-B(S*IK\T3$JFOSA>1S!--+F`@%5'C:"<
  403. MY`(!DD@N$"#IWAK>HE+P&H?[064C2"X@("F39R/-#(+D`@&2[JTQ+RH%KW&XT
  404. M'U0V@N0"`I(S>3;2S"!(+A`@Z=X:"*-2\!I4-H+D`@*2-'DVTLP@="K@I`(5J
  405. M````````````X*0"%0```````````+`2`_#B,0PC2"[`@!36EL9&]^8V15<&S
  406. M)S,JFOS1,2J:_.%Y'(?[T>8"`568XT%E(VTN$%"59R/-#-(.(W.HD6LCV/M!D
  407. MIP)(+A"`A^0"`7E(+A"@A^0"`G!X2"X@`)>'Y`("<'HK,>#O(/XUDF,C*S&`;
  408. M(0`04V5T57!(86UI;'1O;FEA;A"=+>!A(]ZBT@(;N"HPDP*9"0``````!4@N7
  409. M(`"'YRTJ+;"!Y`("<'G>HM("&V>K@>0"`G!ZWJ+2`AMGJ^'>&BLQ<+8:5#:"6
  410. MY`(!2'DVTLP@2"X0@$1E(T@N$("79R-^[U&A()6I064C2"Y0`(=']D:79R/-F
  411. M#(+D`@%(5#:"Y`(!>7DVXO<>%0I2F1I4-H+D`@5P>61O='DVTLP@2"X0@$1ER
  412. M(T@N$*"79R-^[U&A()6I064C2"Y0`*=']D:79R/-#(+D`@%(5#:"Y`("<'AYJ
  413. M-N+W'A4*0F4C2"Y`@$?V1I=G(\T,@N0"`4A4-H+D`@)P>7DVXO<>%0I"92-(.
  414. M+D"01_9&EV<CS0R"Y`(!2%0V@N0"`G!Z>3;B]QX5"D)E(T@N0*!']D:79R/-$
  415. M#$)E(T@N$("79R-(+K#`E%9&0X?V)$=6)D=E(T@N("")EV<CS0Q"92-(+A"0_
  416. MEV<C2"ZPP)161D.']B1'5B9'92-(+B`@F9=G(\T,0F4C2"X0H)=G(T@NL,"4Z
  417. M5D9#A_8D1U8F1V4C2"X@(*F79R/-#$)E(T@N(`"'EV<C2"ZPP)161D.']B1'>
  418. M5B9'92-(+C`@"8>79R/-#$)E(T@N(`"7EV<C2"ZPP)161D.']B1'5B9'92-(+
  419. M+C`@"9>79R/-#$)E(T@N(`"GEV<C2"ZPP)161D.']B1'5B9'92-(+C`@":>7D
  420. *9R/-#))C(RLQ`"LQ5
  421. ``
  422. end
  423. END_UU
  424.